package br.com.friendzoone.modelo.solicitacao;

import java.util.Date;

import br.com.friendzoone.annotations.Chave;
import br.com.friendzoone.annotations.Coluna;
import br.com.friendzoone.annotations.Enumerados;
import br.com.friendzoone.annotations.Id;
import br.com.friendzoone.annotations.Relacionamento;
import br.com.friendzoone.modelo.enums.EnumRelacionamento;
import br.com.friendzoone.modelo.enums.EnumStatusSolicitacao;
import br.com.friendzoone.modelo.pessoa.Pessoa;
import br.com.friendzoone.modelo.util.SolrEntity;

@Chave(nome = "solicitacaoAmizade")
public class SolicitacaoAmizade extends SolrEntity {

	private static final long serialVersionUID = 1L;

	@Coluna(nome = "dataSolicitacao")
	private Date dataSolicitacao;

	@Relacionamento(id = "deAmigoSolicitado")
	private Pessoa deAmigoSolicitado;

	@Id(nome = "idSolicitacao")
	private String id;

	@Relacionamento(id = "paraAmigoSolicitado")
	private Pessoa paraAmigoSolicitado;

	@Enumerados(nome = "statusSolicitacao")
	private EnumStatusSolicitacao statusSolicitacao;

	@Enumerados(nome = "tipoRelacionamentoSolicitado")
	private EnumRelacionamento tipoRelacionamento;

	public Date getDataSolicitacao() {
		return dataSolicitacao;
	}

	public Pessoa getDeAmigoSolicitado() {
		
		if( deAmigoSolicitado == null ){
			deAmigoSolicitado = new Pessoa();
		}
		return deAmigoSolicitado;
	}

	public String getId() {
		return id;
	}

	public Pessoa getParaAmigoSolicitado() {
		if( paraAmigoSolicitado == null ){
			paraAmigoSolicitado = new Pessoa();
		}
		return paraAmigoSolicitado;
	}

	public EnumStatusSolicitacao getStatusSolicitacao() {
		return statusSolicitacao;
	}

	public EnumRelacionamento getTipoRelacionamento() {
		return tipoRelacionamento;
	}

	public void setDataSolicitacao(Date dataSolicitacao) {
		this.dataSolicitacao = dataSolicitacao;
	}

	public void setDeAmigoSolicitado(Pessoa deAmigoSolicitado) {
		this.deAmigoSolicitado = deAmigoSolicitado;
	}

	public void setId(String id) {
		this.id = id;
	}

	public void setParaAmigoSolicitado(Pessoa paraAmigoSolicitado) {
		this.paraAmigoSolicitado = paraAmigoSolicitado;
	}

	public void setStatusSolicitacao(EnumStatusSolicitacao statusSolicitacao) {
		this.statusSolicitacao = statusSolicitacao;
	}

	public void setTipoRelacionamento(EnumRelacionamento tipoRelacionamento) {
		this.tipoRelacionamento = tipoRelacionamento;
	}

}
